/*********************************************************************\
*
*                  (c) lkc
*                  All Rights Reserved. lkc Confidential
*
\*********************************************************************/
/*********************************************************************\
*   Title                      :
*
*   Module Description         :
*
*   Author                     : lkc
*
*   Created                    : 2018-8-15
*
\*********************************************************************/


#ifndef FOCUSCONTROL_H
#define FOCUSCONTROL_H

#include "Communicate.h"
#include "ProtocolMCU.h"


#ifdef MCU_COMM_TYPE_IS_QT
#include <QObject>
class FocusControl:public QObject
{
    Q_OBJECT
signals:
    void IncFocusSignal(unsigned char step = 10);//增大相机焦距，触发信号
    void DecFocusSignal(unsigned char step = 10);//减小相机焦距，触发信号
    void SetFocusSignal(unsigned char value);//设置相机焦距，触发信号
    void GetFocusCommandSignal();//获取相机当前焦距 触发信号
    void SetWorkModeSignal(bool mode);//设置相机工作状态 触发信号
    void MotoSelfCheckSignal();//相机启动自检 触发信号
#else
class FocusControl
{
#endif //#ifdef MCU_COMM_TYPE_IS_QT
public:
    FocusControl();
    //void GetFocusCommand();//发送获取当前焦距指令
    void Init();
    void IncFocus(unsigned char step = 10);//增大相机焦距，步长step，最大150
    void DecFocus(unsigned char step = 10);//减小相机焦距，步长step，最小50
    void SetFocus(unsigned char value);//设置相机焦距，范围50～150
    void SetView(float value);//设置相机视场角，范围6.9～20.4
    void SetWorkMode(bool mode);//设置相机工作状态
    unsigned char GetFocus();
    float GetViewField();
    void MotoSelfCheck();//相机启动自检
    bool GetSelfCheckState();//true表示自检正常 false表示自检异常

//#ifdef MCU_COMM_TYPE_IS_QT
//signals:
//    void IncFocusSignal(unsigned char step = 10);//增大相机焦距，触发信号
//    void DecFocusSignal(unsigned char step = 10);//减小相机焦距，触发信号
//    void SetFocusSignal(unsigned char value);//设置相机焦距，触发信号
//    void GetFocusCommandSignal();//获取相机当前焦距 触发信号
//    void SetWorkModeSignal(bool mode);//设置相机工作状态 触发信号
//    void MotoSelfCheckSignal();//相机启动自检 触发信号
//#endif//#ifdef MCU_COMM_TYPE_IS_QT

};
extern FocusControl focusCtl;



#endif // FOCUSCONTROL_H


/********************************************************************\
 *
 * REVISION RECORDS
 *
\*********************************************************************/
/*********************************************************************/
/*
 *
 *
 *
\*********************************************************************/
/*------------------------------The End------------------------------*/
